home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / pyxmpp / message.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  83 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __revision__ = '$Id: message.py 651 2006-08-27 19:26:45Z jajcus $'
  5. __docformat__ = 'restructuredtext en'
  6. import libxml2
  7. from pyxmpp.stanza import Stanza
  8. from pyxmpp.utils import to_utf8, from_utf8
  9. from pyxmpp.xmlextra import common_ns
  10. message_types = ('normal', 'chat', 'headline', 'error', 'groupchat')
  11.  
  12. class Message(Stanza):
  13.     stanza_type = 'message'
  14.     
  15.     def __init__(self, xmlnode = None, from_jid = None, to_jid = None, stanza_type = None, stanza_id = None, subject = None, body = None, thread = None, error = None, error_cond = None, stream = None):
  16.         self.xmlnode = None
  17.         if isinstance(xmlnode, Message):
  18.             pass
  19.         elif isinstance(xmlnode, Stanza):
  20.             raise TypeError, "Couldn't make Message from other Stanza"
  21.         elif isinstance(xmlnode, libxml2.xmlNode):
  22.             pass
  23.         elif xmlnode is not None:
  24.             raise TypeError, "Couldn't make Message from %r" % (type(xmlnode),)
  25.         
  26.         if xmlnode is None:
  27.             xmlnode = 'message'
  28.         
  29.         Stanza.__init__(self, xmlnode, from_jid = from_jid, to_jid = to_jid, stanza_type = stanza_type, stanza_id = stanza_id, error = error, error_cond = error_cond, stream = stream)
  30.         if subject is not None:
  31.             self.xmlnode.newTextChild(common_ns, 'subject', to_utf8(subject))
  32.         
  33.         if body is not None:
  34.             self.xmlnode.newTextChild(common_ns, 'body', to_utf8(body))
  35.         
  36.         if thread is not None:
  37.             self.xmlnode.newTextChild(common_ns, 'thread', to_utf8(thread))
  38.         
  39.  
  40.     
  41.     def get_subject(self):
  42.         n = self.xpath_eval('ns:subject')
  43.         if n:
  44.             return from_utf8(n[0].getContent())
  45.         else:
  46.             return None
  47.  
  48.     
  49.     def get_thread(self):
  50.         n = self.xpath_eval('ns:thread')
  51.         if n:
  52.             return from_utf8(n[0].getContent())
  53.         else:
  54.             return None
  55.  
  56.     
  57.     def copy(self):
  58.         return Message(self)
  59.  
  60.     
  61.     def get_body(self):
  62.         n = self.xpath_eval('ns:body')
  63.         if n:
  64.             return from_utf8(n[0].getContent())
  65.         else:
  66.             return None
  67.  
  68.     
  69.     def make_error_response(self, cond):
  70.         if self.get_type() == 'error':
  71.             raise ValueError, 'Errors may not be generated in response to errors'
  72.         
  73.         m = Message(stanza_type = 'error', from_jid = self.get_to(), to_jid = self.get_from(), stanza_id = self.get_id(), error_cond = cond)
  74.         if self.xmlnode.children:
  75.             n = self.xmlnode.children
  76.             while n:
  77.                 m.xmlnode.children.addPrevSibling(n.copyNode(1))
  78.                 n = n.next
  79.         
  80.         return m
  81.  
  82.  
  83.